<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//将变量a打印10次
			let a = 10;
			console.log(a);
			console.log(a);
			console.log(a);
			console.log(a);
			console.log(a);
			console.log(a);
			console.log(a);
			console.log(a);
			console.log(a);
			console.log(a);
			//for循环
			for (let i = 0; i < 10; i++) {
				console.log(a);
			}
			//从1打印到10
			for (let i = 0; i < 10; i++) {
				console.log(i + 1);
			}
			//while循环
			let i = 0; //初始化部分
			while (i < 10 /*条件部分*/ ) {
				i++; //迭代部分
				console.log(i); //循环部分
			}

			//do-while循环，至少执行一次
			// i = 0;
			do {
				console.log("do-whilte循环")
			} while (i < 10);
			//死循环：一个永远不会结束循环
			// for(;;){}
			// while(true) {}
			// do{}while(true);

			//打印1~100之间所有奇数的和
			let sum = 0; //保存和
			for (let i = 1; i <= 100; i++) {
				if (i % 2 === 1) {
					sum += i;
				}
			}
			console.log(sum);
			//1.从1循环到150并在每行打印一个值，
			//另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,
			//在每个7的倍数行上打印输出“baz”。
			for (let i = 1; i <= 150; i++) {
				if (i % 3 === 0) {
					console.log("foo" + i);
				}
				if (i % 5 === 0) {
					console.log("biz" + i);
				}
				if (i % 7 === 0) {
					console.log("baz" + i);
				}
			}
			//3.打印1~100之间所有是7的倍数的整数的个数及总和
			sum = 0;
			let count = 0;
			for (let i = 1; i <= 100; i++) {
				if (i % 7 === 0) {
					sum += i;
					count++;
				}
			}
			console.log(sum, count);
			//4.输出所有的水仙花数，所谓水仙花数是指一个3
			// 位数，其各个位上数字立方和等于其本身。
			// 例如： 153 = 1*1*1 + 3*3*3 + 5*5*5
			console.log("水仙花数")
			for (let i = 100; i < 1000; i++) {
				//个位
				let g = Math.floor(i % 10);
				//十位
				let s = Math.floor(i % 100 / 10);
				//百位
				let b = Math.floor(i / 100);
				//Math是Javascript内置的一个类，主要是针对数学方面的使用

				if (i === (g * g * g + s * s * s + b * b * b)) {
					console.log(i);
				}
			}

			//7.打印九九乘法表(显示为梯形图)
			let str = "";
			//i控制行数，j控制列数
			for (let i = 1; i <= 9; i++) {
				for (let j = 1; j <= i; j++) {
					str += i + " * " + j + " = " + (i * j) + "  ";
				}
				str += "\n";
			}
			console.log(str);

			//程序控制语句
			/*
				break;
					与switch配合，中止整个switch语句
					与循环配合，中止整个循环
				continue;
					与循环配合，中止当次循环
				return;
					中止函数继续往下执行
				
				在嵌套循环中，break和continue，只会影响最近一个循环
			*/
			// 1.将1~10循环打印出来，到第5次时中断循环。并且最后有打印语句，内容为程序执行完毕
			// for(let i = 1; i < 10; i++) {
			//  if(i === 5) {
			//   break;
			//  }
			//  console.log(i);
			// }
			// console.log("程序执行完毕");
			// 2.将1~10循环打印出，到第5次时跳过。并且最后有打印语句，内容为程序执行完毕
			// for (let i = 1; i < 10; i++) {
			// 	if (i === 5) {
			// 		continue;
			// 	}
			// 	console.log(i);
			// }
			// console.log("程序执行完毕");
			// 3.将1~10循环打印出来，到第5次时中断程序。并且最后有打印语句，内容为程序执行完毕
			for (let i = 1; i < 10; i++) {
				if (i === 5) {
					return;//不能在script标签中直接使用，必须出现在函数中
				}
				console.log(i);
			}
			console.log("程序执行完毕");
			
		</script>
	</body>
</html>
